const express = require('express');
const db = require('../db/index');
// 下载axios
const axios = require('axios');


const router = express.Router();

router.post('/getinfo', (req, res) => {
    console.log('开始获取用户基本信息！');
    // 获取用户基本信息 根据用户的id去查询
    const sql = 'SELECT userid,username,name,bd_token,bd_name from api_user WHERE userid =?'
    console.log(req.user.id);
    //执行sql语句
    db.query(sql, req.user.id, (err, result) => {
        if (err) return res.cc(err);
        if (result.length !== 1) return res.cc('用户不存在！')
        res.send({
            status: 200,
            message: '获取用户信息成功！',
            data: result[0]
        })
    })
})


// 把token 存储到数据库
router.post('/apisq', (req, res) => {
    const token = req.body.bd_token;
    const sql = 'update api_user set bd_token=?,bd_name=? where userid=?'
    axios.get(`https://pan.baidu.com/rest/2.0/xpan/nas?method=uinfo&access_token=${token}`).then((axres) => {
        const bd_name = axres.data.baidu_name;
        db.query(sql, [token, bd_name, req.user.id], (err, result) => {
            if (err) return res.cc(err);
            if (result.affectedRows !== 1) return res.cc('授权失败！')
            res.send({
                status: 200,
                message: '授权成功',
                data: {
                    tok: token,
                    bd_user: bd_name
                }
            })
        })
    }).catch((err) => {
        if (err) res.cc(err)
    })
})

// 移除token
router.post('/delsq', (req, res) => {
    const sql = 'update api_user set bd_token=?,bd_name=? where userid=?'
    db.query(sql, [null, null, req.user.id], (err, result) => {
        if (err) return res.cc(err);
        if (result.affectedRows !== 1) return res.cc('移除token失败')
        res.send({
            status: 200,
            message: '移除token成功！'
        })
    })
})

// 查询文件列表
router.get('/getCollect', (req, res) => {
    // 获取前端路径
    const getName = req.query.getName;
    const sql = 'select bd_token from api_user where userid=?'
    db.query(sql, req.user.id, (err, result) => {
        if (err) return res.cc(err);
        // 获取token,根据token查询文件列表
        const token = result[0].bd_token;
        if (!token) res.cc('请先授权！！')
        const config = {
            method: 'get',
            url: `https://pan.baidu.com/rest/2.0/xpan/file?method=list&dir=${getName}&order=time&start=0&limit=130&web=web&folder=0&access_token=${token}&desc=1`
        }
        axios(config).then((response) => {
            res.send({
                status: 200,
                data: response.data
            })
        }).catch((err) => {
            res.cc(err)
        })
    })
})


// 文件下载
router.post('/download', (req, res) => {
    const sql = 'select bd_token from api_user where userid=?';
    db.query(sql, req.user.id, (err, result) => {
        if (err) return res.cc(err);
        const token = result[0].bd_token;
        const fsids = req.body.fsides;
        console.log(fsids);
        axios({
            method: 'get',
            url: `http://pan.baidu.com/rest/2.0/xpan/multimedia?method=filemetas&access_token=${token}&fsids=[${fsids}]&thumb=1&dlink=1`
        }).then((response) => {
            res.send({
                status: 200,
                data: response.data
            })
        }).catch((err) => {
            res.cc(err)
        })
    })
})
module.exports = router